package main.java.day03;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

/**
 * 实现时间的计算: 要求用户输入身份证号，若格式有误，要求其重新输入。然后根据身份证号码输出20岁生日
 * 所在周的周三的日期。
 * 例如:
 * 出生日期:1992-07-15。
 * 20岁生日:2012-07-15
 * 当周的周三为:2012-07-18
 * @author Xiloe
 *
 */
public class Test05 {
    public static void main(String[] args) throws ParseException {
        String regex="\\d{15}(\\d{2}[0-9xX])?";
        Scanner scanner = new Scanner(System.in);
        String input="";
        while (true){
            System.out.println("请输入你的身份证号码");
            input=scanner.nextLine();
            if (!input.matches(regex)){
                System.out.println("重新输入身份证号码");
            }else{
                break;
            }
        }
            String data=input.substring(6,14);
            SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyyMMdd");
            Date date=simpleDateFormat.parse(data);
            Calendar calendar=Calendar.getInstance();
            calendar.setTime(date);
            calendar.add(Calendar.YEAR,20);
            SimpleDateFormat simpleDateFormat1= new SimpleDateFormat("yyyy-MM-dd");
            date=calendar.getTime();
            System.out.println(simpleDateFormat1.format(date));
            calendar.set(Calendar.DAY_OF_WEEK,Calendar.WEDNESDAY);
            date=calendar.getTime();
            System.out.println(simpleDateFormat1.format(date));


        }

    }


